Skip to content

feat(DOC-2012): document Kafka 4.x client compatibility and KIP-890#1614

Open
mfernest wants to merge 6 commits into
mainfrom
feat/doc-2012-kafka4x-compatibility
Open

feat(DOC-2012): document Kafka 4.x client compatibility and KIP-890#1614
mfernest wants to merge 6 commits into
mainfrom
feat/doc-2012-kafka4x-compatibility

Conversation

@mfernest
Copy link
Copy Markdown
Contributor

@mfernest mfernest commented Mar 17, 2026

Summary

Resolves DOC-2012.

Documents Kafka 4.x client compatibility on modules/develop/pages/kafka-clients.adoc and adds KIP-890 (Transactions Server-Side Defense) to the unsupported features list with engineering context.

This PR was originally opened by @mfernest, who is no longer with the team. @Feediver1 is taking it over to land the remaining work after the 2026-03 review round.

What changed

  • Kafka 4.x compatibility statement — scoped to the Apache Kafka Java client per @mattschumpert's review note. Other clients in the validated list have not been broadly re-validated at 4.x and the page no longer claims they have.
  • KIP-890 (Transactions Server-Side Defense) added to the unsupported features list with: (a) the Raft-based replication explanation @bashtanov asked for, and (b) the corrected fallback-vs-V2 wording (epoch bumping only applies to Transactions V2, which Redpanda doesn't implement).
  • Frontmatter — added page-topic-type: reference, personas: developer, and two learning objectives.
  • Style cleanup — Apache Kafka® trademark on first mention, removed "currently", direct imperative on the TIP, broke the SCRAM bullet's semicolon chain, monospaced pandaproxy, and resolved a CodeRabbit terminology inconsistency between "not validated" and "unsupported client".

Review history

Reviewer Status
@bashtanov Approved 2026-03-26 and 2026-03-27 after the KIP-890 wording was iterated to match V2 fallback semantics
@mattschumpert Flagged the 4.x scope overclaim; addressed in this revision by narrowing the validated-at-4.x claim to the Java client (commit 69535fdf). Re-requesting review

Preview pages

Test plan

  • Netlify preview builds without new errors
  • Page renders the narrowed 4.x claim and the tightened KIP-890 bullet correctly in both cloud and non-cloud builds
  • KIP-890 external link, SASL xref, and Slack link all resolve

🤖 Generated with Claude Code

@mfernest mfernest requested a review from a team as a code owner March 17, 2026 21:03
@netlify
Copy link
Copy Markdown

netlify Bot commented Mar 17, 2026

Deploy Preview for redpanda-docs-preview ready!

Name Link
🔨 Latest commit 64bd7f2
🔍 Latest deploy log https://app.netlify.com/projects/redpanda-docs-preview/deploys/6a1838523ad9f500084117f9
😎 Deploy Preview https://deploy-preview-1614--redpanda-docs-preview.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Mar 17, 2026

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: d7680eda-c673-4e73-b803-5cc02b3df1d9

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

This pull request updates the Kafka clients documentation page with clarifications and additions. Changes include: adding trademark notation to "Apache Kafka®", expanding the compatibility note to include Redpanda and Kafka 4.x clients, reworded guidance for unsupported clients, and a new unsupported Kafka feature entry (KIP-890 Transactions Server-Side Defense) with details about per-transaction epoch bumping behavior. Environment-specific authentication guidance is added for both cloud and non-cloud deployments. Additional notes regarding HTTP Proxy limitations, delete.retention.ms behavior, and client quotas are incorporated with conditional visibility based on environment.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~5 minutes

Suggested reviewers

  • c4milo
  • kbatuigas
  • mattschumpert
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and specifically summarizes the main changes: documenting Kafka 4.x client compatibility and KIP-890 support details, with the ticket reference for traceability.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description check ✅ Passed The pull request description is comprehensive and well-structured, including JIRA ticket reference, detailed summary of changes, review history, preview pages, and test plan.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/doc-2012-kafka4x-compatibility

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
modules/develop/pages/kafka-clients.adoc (1)

45-45: Consider aligning “unsupported client” with earlier “not validated” terminology.

Line 43 says unvalidated clients can still be compatible, while Line 45 asks users to report an “unsupported client.” “Unvalidated client” would read more consistently.

✏️ Suggested wording tweak
-If you find an unsupported client, contact the Redpanda team in the community https://redpanda.com/slack[Slack^].
+If you find an unvalidated client, contact the Redpanda team in the community https://redpanda.com/slack[Slack^].
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@modules/develop/pages/kafka-clients.adoc` at line 45, Replace the phrase
"unsupported client" with "unvalidated client" in the sentence "If you find an
unsupported client, contact the Redpanda team..." so terminology matches the
earlier "not validated" wording; update the copy that currently uses
"unsupported client" to read "If you find an unvalidated client, contact the
Redpanda team..." to maintain consistency with the phrase used on Line 43.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@modules/develop/pages/kafka-clients.adoc`:
- Line 45: Replace the phrase "unsupported client" with "unvalidated client" in
the sentence "If you find an unsupported client, contact the Redpanda team..."
so terminology matches the earlier "not validated" wording; update the copy that
currently uses "unsupported client" to read "If you find an unvalidated client,
contact the Redpanda team..." to maintain consistency with the phrase used on
Line 43.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: ff2ed267-6e9a-4306-8ce8-b1bc9add75f1

📥 Commits

Reviewing files that changed from the base of the PR and between be11e77 and 061552a.

📒 Files selected for processing (1)
  • modules/develop/pages/kafka-clients.adoc

@mfernest mfernest requested a review from bashtanov March 17, 2026 21:27
@Feediver1
Copy link
Copy Markdown
Contributor

Thanks for the quick turnaround @mfernest ! Reminder: be sure to include a preview link to the updated section(s). Thx!

@mfernest
Copy link
Copy Markdown
Contributor Author

@bashtanov — gentle nudge on this one when you have a chance. Documents Kafka 4.x client compatibility and KIP-890 for DOC-2012.

* Quotas per user for bandwidth and API request rates. However, xref:manage:cluster-maintenance/manage-throughput.adoc#client-throughput-limits[quotas per client and per client group] using AlterClientQuotas and DescribeClientQuotas APIs are supported.
endif::[]
+
* https://cwiki.apache.org/confluence/display/KAFKA/KIP-890[KIP-890^] (Transactions Server-Side Defense): Redpanda does not implement the server-side portion of KIP-890. Kafka 4.x clients use per-transaction epoch bumping to protect against erroneous transaction commits, but fall back to the standard transaction protocol when connecting to Redpanda.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it make sense to describe that the Kafka problem that KIP-890 solves is not present in Redpanda due to Raft's atomicity guarantees?

Comment thread modules/develop/pages/kafka-clients.adoc Outdated
@mfernest mfernest requested a review from bashtanov March 26, 2026 17:44
@mfernest mfernest requested review from bashtanov and kbatuigas March 26, 2026 23:46
@mattschumpert
Copy link
Copy Markdown

cc @piyushredpanda @dotnwat

We can call out what we don't support (server side defense), butI dont think we can claim proper 4.x certification. My understanding is @bashtanov only tested Transactions with 4.x. The Aha! card got mistakedly closed.

We really need to fix failing tests with Kafka 4.x on a more broad basis before claiming victory.

@bashtanov
Copy link
Copy Markdown

bashtanov commented Mar 27, 2026

My understanding is @bashtanov only tested Transactions with 4.x.

All ducktape and chaos tests that use kafka clients now use version 4.1 of it.

@mattschumpert
Copy link
Copy Markdown

Oh wow. @bashtanov is this true across all tests for ALL of these clients: https://docs.redpanda.com/current/develop/kafka-clients/ ?

@mattschumpert
Copy link
Copy Markdown

I guess we should clarify this is the Java client that is now fully certified. will have to check with the enterprise team about other clients.

@bashtanov
Copy link
Copy Markdown

@bashtanov is this true across all tests for ALL of these clients: https://docs.redpanda.com/current/develop/kafka-clients/ ?

What's this?

@kbatuigas kbatuigas requested a review from mattschumpert March 30, 2026 23:50
@kbatuigas kbatuigas self-assigned this Mar 31, 2026
@Feediver1 Feediver1 self-assigned this May 27, 2026
mfernest and others added 5 commits May 27, 2026 17:23
- Explicitly state Kafka 4.x clients are compatible with Redpanda
- Add KIP-890 (Transactions Server-Side Defense) to unsupported features:
  Redpanda does not implement the server-side portion; Kafka 4.x clients
  fall back to the standard transaction protocol when connecting to Redpanda
- Add Apache Kafka® trademark on first mention
- Remove "currently" from unsupported features intro
- Fix "reach out" phrasing and mid-sentence line break

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add page-topic-type, personas, and learning objectives metadata
- "Redpanda Data recommends" → direct imperative "Always use..."
- "limitations below" → "limitations in the next section"
- Fix "See the ... guide for details" → "For details, see xref:..."
- "you can file an issue" → imperative construction
- Break SCRAM bullet semicolon chain into two sentences
- (pandaproxy) → monospace code term
- "contact the Redpanda team in the community Slack" → cleaner phrasing

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add context that KIP-890 addresses transaction errors specific to
Kafka replication, and that Redpanda Raft-based replication is not
susceptible to this issue. Addresses bashtanov review comment.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Kafka 4.x clients only use per-transaction epoch bumping when the server
supports Transactions V2. Since Redpanda doesn't implement V2, clients
fall back to the original transaction protocol — epoch bumping doesn't
apply in this case.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…P-890

- Scope the 4.x compatibility claim to the Apache Kafka Java client per
  @mattschumpert's review note; other clients in the validated list have
  not been broadly re-validated at 4.x.
- Replace "unsupported client" with neutral phrasing to resolve the
  CodeRabbit terminology inconsistency vs the earlier "not validated"
  paragraph.
- Tighten the KIP-890 bullet from five sentences to three; move the
  epoch-bumping detail into a parenthetical so the bullet doesn't
  dominate the unsupported-features list visually.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@Feediver1 Feediver1 force-pushed the feat/doc-2012-kafka4x-compatibility branch from ba20e86 to 69535fd Compare May 27, 2026 21:23
@Feediver1 Feediver1 requested a review from bashtanov May 27, 2026 21:24
@Feediver1
Copy link
Copy Markdown
Contributor

Re-opening this thread to close it out. To answer @bashtanov's question from 2026-03-28 — Matt was asking whether all clients in the validated table had been re-tested at Kafka 4.x. The conclusion from that thread was that only the Apache Kafka Java client at 4.x is fully validated (via ducktape and chaos test suites), and broader 4.x re-validation of the other clients hasn't happened.

I've narrowed the page's 4.x claim accordingly in commit 69535fdf so the docs no longer overstate the scope. Reposting @mattschumpert and @piyushredpanda for a final read.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants